from sqlalchemy import Table, Column, Integer, String
from sqlalchemy.orm import mapper
from database import metadata, db_session, init_db, engine
from sqlalchemy import ForeignKey
from sqlalchemy.orm import relationship, backref
from proyecto import Proyecto, proyecto
from estadoFase import EstadoFase, estadofase
from estadoLB import EstadoLB, estadoLB
from fase import Fase, fase


class LineaBase(object):
    """ Clase que define el modelo de la tabla linea base """
    
    query = db_session.query_property()

    def __init__(self, observacion=None, cant_items=None, estadoLB= None):
        """ Metodo init """
        self.observacion = observacion
        self.cant_items = cant_items
        self.estadoLB = estadoLB
        
    def __repr__(self):
        return self.observacion

lineaBase = Table('lineabase', metadata,
    Column('idlineabase', Integer, primary_key=True),
    Column('observacion', String(250)),
    Column('idestadolb', Integer, ForeignKey('estadolb.idestadolb')),
    Column('cant_items', Integer)
)

mapper(LineaBase, lineaBase, properties={
    'estadoLB' : relationship(EstadoLB, backref='lineasbase')
})
